Passay লাইব্রেরি Password History Validation সাপোর্ট করে, যা পাসওয়ার্ড পুনরায় ব্যবহারের ঝুঁকি কমাতে সাহায্য করে। এই ফিচারটি নিশ্চিত করে যে ব্যবহারকারী তার পূর্বে ব্যবহৃত পাসওয়ার্ড আবার ব্যবহার করতে পারবে না।
import org.passay.*;
import java.util.Arrays;
import java.util.List;
public class PasswordHistoryValidationExample {
public static void main(String[] args) {
// আগের পাসওয়ার্ডের তালিকা
List<String> previousPasswords = Arrays.asList(
"OldPass@123",
"PreviousPass@456",
"MyOldPass@789"
);
// Password Validator তৈরি করা
PasswordValidator validator = new PasswordValidator(Arrays.asList(
new LengthRule(8, 16), // পাসওয়ার্ড দৈর্ঘ্যের নিয়ম
new UppercaseCharacterRule(1), // অন্তত ১টি বড় হাতের অক্ষর
new DigitCharacterRule(1), // অন্তত ১টি সংখ্যা
new SpecialCharacterRule(1), // অন্তত ১টি স্পেশাল ক্যারেক্টার
new WhitespaceRule(), // ফাঁকা স্পেস নিষিদ্ধ
new HistoryRule(previousPasswords) // পাসওয়ার্ড ইতিহাস যাচাই
));
// নতুন পাসওয়ার্ড ইনপুট
String newPassword = "MyOldPass@789";
// পাসওয়ার্ড যাচাই
RuleResult result = validator.validate(new PasswordData(newPassword));
if (result.isValid()) {
System.out.println("পাসওয়ার্ড বৈধ!");
} else {
System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
validator.getMessages(result).forEach(System.out::println);
}
}
}
HistoryRule
ব্যবহার করে আগের পাসওয়ার্ডগুলোর সাথে মিলিয়ে যাচাই করা হয়।List
হিসেবে পুরানো পাসওয়ার্ডের তথ্য ইনপুট হিসেবে নেয়।Passay ব্যবহার করতে, নিচের Maven ডিপেনডেন্সি প্রয়োজন:
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.0</version>
</dependency>
এই ফিচারটি পাসওয়ার্ড নিরাপত্তা বাড়ানোর পাশাপাশি compliance policies (যেমন NIST বা ISO 27001) মেনে চলতে সহায়ক।
প্যাসে (Passay) Java লাইব্রেরি Password History-এর ধারণা এবং প্রয়োগের ক্ষেত্রে সাহায্য করতে পারে। Password History একটি নিরাপত্তা বৈশিষ্ট্য যা ব্যবহারকারীর পূর্ববর্তী পাসওয়ার্ডগুলি ট্র্যাক করে এবং নির্দিষ্ট সংখ্যক পুরানো পাসওয়ার্ড পুনরায় ব্যবহার করা থেকে বিরত রাখে। এটি সাধারণত নিরাপত্তা নীতির একটি অংশ হিসেবে ব্যবহৃত হয়, যা নিশ্চিত করে যে ব্যবহারকারী সহজেই পুরনো বা দুর্বল পাসওয়ার্ড পুনরায় ব্যবহার করবে না।
এটি একটি পাসওয়ার্ড পরিচালনা নীতি যেখানে পুরনো পাসওয়ার্ডগুলি স্টোর করা হয় এবং ব্যবহারকারী যখন নতুন পাসওয়ার্ড সেট করতে চায়, তখন সিস্টেম এটি যাচাই করে যে এটি পূর্ববর্তী কোন পাসওয়ার্ডের সাথে মিলে না। এটি সাধারণত একটি নির্দিষ্ট সংখ্যা (যেমন, 5 বা 10) পুরনো পাসওয়ার্ডগুলো স্টোর করে রাখে এবং নতুন পাসওয়ার্ড সেট করার সময় সেগুলো যাচাই করে।
Passay লাইব্রেরি PasswordHistoryRule নামে একটি বৈশিষ্ট্য প্রদান করে, যা একটি নির্দিষ্ট সংখ্যক পূর্ববর্তী পাসওয়ার্ডগুলোর সাথে নতুন পাসওয়ার্ডের মিল পরীক্ষা করে। এটি কার্যকরভাবে password reuse রোধ করতে সহায়ক।
import org.passay.*;
import java.util.Arrays;
public class PasswordHistoryExample {
public static void main(String[] args) {
// পূর্ববর্তী 3টি পাসওয়ার্ড যাচাই করা হবে
PasswordValidator validator = new PasswordValidator(Arrays.asList(
new LengthRule(8, 16), // পাসওয়ার্ডের দৈর্ঘ্য 8-16 অক্ষর
new UppercaseCharacterRule(1), // অন্তত একটি বড় হাতের অক্ষর
new DigitCharacterRule(1), // অন্তত একটি সংখ্যা
new SpecialCharacterRule(1), // অন্তত একটি স্পেশাল ক্যারেক্টার
new WhitespaceRule(), // ফাঁকা জায়গা নিষিদ্ধ
new PasswordHistoryRule(3) // পাসওয়ার্ড ইতিহাসের নিয়ম: সর্বশেষ 3 পাসওয়ার্ডের সাথে মিলবে না
));
// নতুন পাসওয়ার্ড
String password = "MySecure@123";
// পূর্ববর্তী পাসওয়ার্ডগুলি
String[] previousPasswords = {"OldPassword1@", "Password2022!", "MySecure@123"};
// পাসওয়ার্ড যাচাই
RuleResult result = validator.validate(new PasswordData(password));
// ফলাফল চেক করা
if (result.isValid()) {
System.out.println("পাসওয়ার্ড বৈধ!");
} else {
System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
validator.getMessages(result).forEach(System.out::println);
}
}
}
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.0</version>
</dependency>
Passay লাইব্রেরি দিয়ে Password History ব্যবস্থাপনা একটি শক্তিশালী এবং কার্যকরী উপায়, যা ব্যবহারকারীদের নিরাপত্তা নিশ্চিত করে এবং পুরনো পাসওয়ার্ড পুনরায় ব্যবহার রোধ করে।
Passay-এর PasswordHistoryRule
ব্যবহার করে আপনি পুরোনো পাসওয়ার্ড চেক করতে পারেন। এটি নিশ্চিত করে যে নতুন পাসওয়ার্ডটি আগে ব্যবহৃত পাসওয়ার্ডগুলোর মধ্যে কোনো একটি নয়। এই নিয়মটি সাধারণত পাসওয়ার্ড পলিসির অংশ হিসেবে ব্যবহৃত হয় যেখানে ব্যবহারকারীদের পাসওয়ার্ড পুনরায় ব্যবহার করতে নিরুৎসাহিত করা হয়।
নিচের কোডে PasswordHistoryRule
এর মাধ্যমে পুরোনো পাসওয়ার্ড যাচাই করা দেখানো হয়েছে:
import org.passay.*;
import java.util.Arrays;
import java.util.List;
public class PasswordHistoryRuleExample {
public static void main(String[] args) {
// পুরাতন পাসওয়ার্ডগুলোর তালিকা
List<String> oldPasswords = Arrays.asList(
"OldPassword1@",
"OldPassword2@",
"OldPassword3@"
);
// নতুন পাসওয়ার্ড
String newPassword = "MyNewSecure@123";
// PasswordHistoryRule কনফিগার করা
PasswordHistoryRule historyRule = new PasswordHistoryRule();
historyRule.setHistoryStore(new InMemoryPasswordStore(oldPasswords));
historyRule.setNumberOfHistoricalPasswordsToCheck(oldPasswords.size()); // যতগুলো পুরানো পাসওয়ার্ড চেক করতে হবে
PasswordValidator validator = new PasswordValidator(Arrays.asList(
historyRule, // পাসওয়ার্ড হিস্ট্রি রুল যোগ করা
new LengthRule(8, 16), // পাসওয়ার্ড দৈর্ঘ্য চেক
new UppercaseCharacterRule(1), // বড় হাতের অক্ষর
new DigitCharacterRule(1), // অন্তত একটি সংখ্যা
new SpecialCharacterRule(1) // স্পেশাল ক্যারেক্টার
));
// পাসওয়ার্ড যাচাই
RuleResult result = validator.validate(new PasswordData(newPassword));
if (result.isValid()) {
System.out.println("পাসওয়ার্ড বৈধ!");
} else {
System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
validator.getMessages(result).forEach(System.out::println);
}
}
// In-memory password history store
static class InMemoryPasswordStore implements PasswordHistoryStore {
private final List<String> historicalPasswords;
public InMemoryPasswordStore(List<String> historicalPasswords) {
this.historicalPasswords = historicalPasswords;
}
@Override
public boolean contains(String password) {
return historicalPasswords.contains(password);
}
}
}
PasswordHistoryRule
:InMemoryPasswordStore
:setHistoryStore
: পাসওয়ার্ড ইতিহাসের তালিকা সেট করা হয়।setNumberOfHistoricalPasswordsToCheck
: নির্ধারণ করে কতগুলো পুরানো পাসওয়ার্ড চেক করতে হবে।Passay-এর নির্ভরতা যোগ করতে ব্যবহার করুন:
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.0</version>
</dependency>
এইভাবে, PasswordHistoryRule
আপনার অ্যাপ্লিকেশনের পাসওয়ার্ড নিরাপত্তা বাড়াতে সহায়তা করে।
Passay-এ Password History Validation একটি গুরুত্বপূর্ণ ফিচার, যা ব্যবহারকারীর পূর্ববর্তী পাসওয়ার্ডের সাথে নতুন পাসওয়ার্ডের মিল পরীক্ষা করে। এটি নিশ্চিত করে যে ব্যবহারকারী পূর্ববর্তী পাসওয়ার্ড পুনরায় ব্যবহার করছে না।
নীচে একটি উদাহরণ দেওয়া হয়েছে যেখানে Passay এর HistoryRule ব্যবহার করে পাসওয়ার্ড ইতিহাস যাচাই করা হয়েছে:
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.0</version>
</dependency>
import org.passay.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PasswordHistoryValidationExample {
public static void main(String[] args) {
// পূর্ববর্তী পাসওয়ার্ডের তালিকা
List<String> passwordHistory = new ArrayList<>(Arrays.asList(
"Password@123",
"SecurePass@2023",
"MyOldPass#456"
));
// নতুন পাসওয়ার্ড
String newPassword = "SecurePass@2023";
// পাসওয়ার্ড যাচাই নিয়ম
PasswordValidator validator = new PasswordValidator(Arrays.asList(
new LengthRule(8, 16), // পাসওয়ার্ডের দৈর্ঘ্য 8-16 অক্ষর
new UppercaseCharacterRule(1), // অন্তত একটি বড় হাতের অক্ষর
new DigitCharacterRule(1), // অন্তত একটি সংখ্যা
new SpecialCharacterRule(1), // অন্তত একটি বিশেষ অক্ষর
new WhitespaceRule(), // ফাঁকা জায়গা নিষিদ্ধ
new HistoryRule(passwordHistory) // পাসওয়ার্ড ইতিহাস যাচাই
));
// পাসওয়ার্ড যাচাই করা
RuleResult result = validator.validate(new PasswordData(newPassword));
if (result.isValid()) {
System.out.println("পাসওয়ার্ড বৈধ!");
} else {
System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
validator.getMessages(result).forEach(System.out::println);
}
}
}
passwordHistory
একটি তালিকা যেখানে পূর্ববর্তী পাসওয়ার্ড সংরক্ষণ করা হয়েছে।HistoryRule
Passay এর একটি বিল্ট-ইন নিয়ম যা পূর্ববর্তী পাসওয়ার্ডের সাথে নতুন পাসওয়ার্ড মিল আছে কিনা তা যাচাই করে।যদি নতুন পাসওয়ার্ড SecurePass@2023
হয় এবং এটি ইতিহাসে উপস্থিত থাকে, আউটপুট হবে:
পাসওয়ার্ড অবৈধ। কারণ:
Password must not be equal to any of the previous passwords.
যদি নতুন পাসওয়ার্ড ইতিহাসের সাথে মিলে না যায় এবং অন্যান্য নিয়ম পূরণ করে, আউটপুট হবে:
পাসওয়ার্ড বৈধ!
Read more